A composite application may be based on applications or services that were developed separately. Composite application development may involve orchestrating the various individual applications and services. For example, a service that involves interactions between a bank and a bank customer may be coordinated with an application that involves interactions between the bank and external bodies (e.g. another bank or a credit company). Each separate application may handle or define data differently. For example, one application may define an identification number or credit card number as a character string and handle it accordingly (e.g. by performing string operations on the number, such as character extraction or concatenation). Another application, may, however, define the same identification number as an integer and treat it accordingly (e.g. by performing mathematical operations on the number, e.g. to verify validity of the number by calculating a checksum). The composite application may be designed to coordinate between the various applications. This coordination may be referred to as a data contract.
Integration between application components may include multiple systems implemented by different vendors, belonging to separate organizations, or deployed on a network and used on demand. Responsibility for these systems may fall to different organizations, which may be geographically separated from one another.
An application (e.g. a user interface or online form for interacting with a user) may be structured as a document that is defined in terms of Extensible Markup Language (XML) schema. For example, the application may be defined in terms of a language such as XSD (XML Schema Definition).